﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using AccesoDatos.Manejador;
using AccesoDatos.Objetos;
using Conexion;
using System.Windows.Forms;
/*INCAPACIDADES CAPTURA Y MODIFICA
 * la variable forma es una bandera para determinar si se captura o modifica 
 * 1._ Capturar botones
 * 2._ Carga los datos de la incapacidad para modificarlo.
 * 
 
 */
namespace Autorizacion_facturas_caja
{
    public partial class frmIncapacidades_Captura : Form
    {
        objRH objR = new objRH();
        objIncapacidades objI = new objIncapacidades();
        Manejador_Incapacidades Man = new Manejador_Incapacidades();
        int forma1;
      public frmIncapacidades_Captura(objRH obj,objIncapacidades obj1, int forma)
        {
            InitializeComponent();
            objR = obj;
           
            mostrarLabels();
            lblHora.Visible = false;
            dteHora.Visible = false;
            panel4.Visible = false;
            ToolTip1();
          val=forma;
           
            switch (forma) { 
            
                case 1:
                    mostrarBotones(1);
                    groupBox2.Visible = true;
                    groupLabels.Visible = false;
                    break;
                case 2:
                    groupBox2.Visible = false;
                    groupLabels.Visible = true;
                    objI = obj1;
                    MostrarDatos();
                    mostrarBotones(2);
                    break;
            }
        }

       
      #region funciones
      
        private void textBox1_TextChanged(object sender, EventArgs e)
            {
                try
                {
                    int dias = Convert.ToInt32(txtDias.Text);
                    DateTime fechaInicio = new DateTime();
                    DateTime fechaFin = new DateTime();
                    fechaInicio = dteInicio.Value;
                    fechaFin = fechaInicio.AddDays(dias-1);
                    dteFin.Text = fechaFin.ToShortDateString();
                }
                catch { }
            }
           
        private void mostrarLabels() 
        {
            try
            {
                lblNombre.Text = objR.Nombre_completo;
                lblSucursal.Text = objR.Nombre_Sucursal;
                lblDepartamento.Text = objR.Departamento;
            }
            catch { }

        }
           
        private void cargarDatos() 
        {
            try
            {
                txtComentario.Text = objI.Comentarios;
                txtDias.Text = objI.Dias.ToString();
                txtFolio.Text = objI.Folio;
                dteInicio.Text = objI.Fecha_Inicio.ToShortDateString();
                dteFin.Text = objI.Fecha_Fin.ToShortDateString();
                dteHora.Text = objI.Hora_inicio;

                switch (objI.Tipo)
                {
                    case "ENFERMEDAD GENERAL":
                        rdoEnfermedad.Checked = true;
                        break;
                    case "RIESGO DE TRABAJO":
                        rdoRiesgo.Checked = true;
                        break;
                    case "PRENATAL":
                        rdoPrenatal.Checked = true;
                        break;
                    case "POSNATAL":
                        rdoPosnatal.Checked = true;
                        break;
                    case "ENLACE":
                        rdoEnlace.Checked = true;
                        break;
                    case "LACTANCIA":
                        rdoLactancia.Checked = true;
                        break;
                    case "TRAYECTO DE TRABAJO":
                        rdoTrayecto.Checked = true;
                        break;
                }
                switch (objI.Pagar.Trim())
                {
                    case "SI":
                        rdoSi.Checked = true;
                        break;
                    case "NO":
                        rdoNo.Checked = true;
                        break;
                }
                switch (objI.Porciento)
                {
                    case 60:
                        rdo60.Checked = true;
                        break;
                    case 100:
                        rdo100.Checked = true;
                        break;
                }
            }
            catch { }

        }
            
        private void MostrarDatos() 
        {
            try
            {
                if (objI.Comentarios != null) { label25.Visible = true; }
                else label25.Visible = false;
                lblComentarios.Text = objI.Comentarios;
                lblDias.Text = objI.Dias.ToString();
                lblFolio.Text = objI.Folio;
                lblInicio.Text = objI.Fecha_Inicio.ToShortDateString();
                lblFin.Text = objI.Fecha_Fin.ToShortDateString();
                lblTipo.Text = objI.Tipo;
                lblPagar.Text = objI.Pagar;
                lblPorciento.Text = objI.Porciento.ToString();

                if (objI.Tipo == "LACTANCIA")
                {
                    lblHoraa.Visible = true;
                    label22.Visible = true;
                    dteHora.Visible = true;
                    lblHoraa.Text = Convert.ToDateTime(objI.Hora_inicio).ToString("hh:mm tt");
                }
                else
                {
                    lblHoraa.Visible = false;
                    label22.Visible = false;
                    dteHora.Visible = false;
                }
            }
            catch { }
        }

        private void obtenerDatos()
        {
            try
            {
                objI.Comentarios = txtComentario.Text;
                objI.Dias = Convert.ToInt32(txtDias.Text);
                objI.Folio = txtFolio.Text;
                objI.Fecha_Inicio = dteInicio.Value;
                objI.Fecha_Fin = dteFin.Value;
                if (rdoEnfermedad.Checked) objI.Tipo = "ENFERMEDAD GENERAL";
                if (rdoRiesgo.Checked) objI.Tipo = "RIESGO DE TRABAJO";
                if (rdoPrenatal.Checked) objI.Tipo = "PRENATAL";
                if (rdoPosnatal.Checked) objI.Tipo = "POSNATAL";
                if (rdoEnlace.Checked) objI.Tipo = "ENLACE";

                if (rdoLactancia.Checked)
                {
                    objI.Tipo = "LACTANCIA";
                    objI.Hora_inicio = dteHora.Value.ToString("HH:mm:ss"); ;
                }
                if (rdoTrayecto.Checked) objI.Tipo = "TRAYECTO DE TRABAJO";

                if (rdoSi.Checked) objI.Pagar = "SI";
                if (rdoNo.Checked) objI.Pagar = "NO";
                if (rdo60.Checked) objI.Porciento = 60;
                if (rdo100.Checked) objI.Porciento = 100;

            }
            catch { }
        }

        private void ToolTip1()
            {
                ToolTip toolTip1 = new ToolTip();
                toolTip1.ShowAlways = true;
                toolTip1.SetToolTip(this.btnGuardar, "GUARDAR");
                toolTip1.SetToolTip(this.btnCancelar, "CANCELAR");
                toolTip1.SetToolTip(this.btnGuardarMod, "GUARDAR MODIFICACIÓN");
                toolTip1.SetToolTip(this.btnModificarDatos, "MODIFICAR INCAPACIDAD");
                toolTip1.SetToolTip(this.btnLimpiar, "LIMPIAR");
                toolTip1.SetToolTip(this.btnInterrumpir, "INTERRUMPIR INCAPACIDAD");
                toolTip1.SetToolTip(this.btnSalir, "SALIR");
            }

        private void mostrarBotones(int bandera) {

                switch (bandera) { 
                
                    case 1:
                        btnGuardar.Visible = true;
                        btnLimpiar.Visible = true;
                        btnCancelar.Visible= true;
                        btnModificarDatos.Visible = false;
                        btnInterrumpir.Visible = false;
                        btnSalir.Visible = false;
                        btnGuardarMod.Visible = false;

                        break;
                    case 2:
                        btnGuardar.Visible = false;
                        btnLimpiar.Visible = false;
                        btnCancelar.Visible = false;
                        btnModificarDatos.Visible = true;
                        if (objI.Tipo.Trim() == "PRENATAL") {
                            panel1.Enabled = false;
                            btnInterrumpir.Visible = true; 
                       }
                        else btnInterrumpir.Visible = false;
                        btnSalir.Visible = true;
                        btnGuardarMod.Visible = false;
                        break;
                    case 3:
                        btnGuardar.Visible = false;
                        btnLimpiar.Visible = false;
                        btnCancelar.Visible = true;
                        btnModificarDatos.Visible = false;
                        btnInterrumpir.Visible = false;
                        btnSalir.Visible = false;
                        btnGuardarMod.Visible = true;
                        break;
                
                }
            
            }
     
        private void limpiar() {
            txtDias.Text = "";
            txtFolio.Text = "";
            txtComentario.Text = "";
            dteInicio.Text = "";
            dteFin.Text = "";
            dteHora.Text = "";
        }
       
        private bool validar() {

            if (objI.Tipo !="" && objI.Folio !="" && objI.Dias!=null && objI.Pagar!="" ) { return true; }
            return false;
        }
        
        #endregion
      #region Botones
        private void btnGuardar_Click(object sender, EventArgs e)
      {
   
          try
          {
             
              obtenerDatos();
              if (validar())
              {
                  bool resp = Man.GuardaIncapacidad(objI, objR, 1);
                  if (resp) { MessageBox.Show("GUARDADO CORRECTAMENTE","AVISO"); Close(); }
                  else { MessageBox.Show("ERROR AL GUARDAR","ALERTA"); }
              }
              else { MessageBox.Show("FALTAN CAMPOS","ALERTA"); }
          }
          catch {
              MessageBox.Show("FALLO CONEXIÓN","ALERTA");
          }   
      }

        private void btnGuardarMod_Click(object sender, EventArgs e)
      {
          try
          {
             
              obtenerDatos();
              bool resp = Man.GuardaIncapacidad(objI, objR, 2);
              if (resp) { MessageBox.Show("MODIFICADO CORRECTAMENTE","AVISO"); Close(); }
              else { MessageBox.Show("ERROR AL GUARDAR","ALERTA"); }
          }
          catch {
              MessageBox.Show("FALLO CONEXIÓN"); 
          }
      }
        int val;
        private void btnModificarDatos_Click(object sender, EventArgs e)
      {
            mostrarBotones(3);
            groupBox2.Visible = true;
            groupLabels.Visible = false;
            cargarDatos();
            val = 1;
      }
     
        private void btnInterrumpir_Click(object sender, EventArgs e)
      {
          if (MessageBox.Show("INTERRUMPIR INCAPACIDAD", "AVISO", MessageBoxButtons.OKCancel) == DialogResult.OK)
          {
              try
              {
                  bool resp = Man.ModificaEstado(objI);
                  if (resp)
                  {
                      MessageBox.Show("MODIFICADO CORRECTAMENTE","AVISO");
                      mostrarBotones(1);
                      rdoPosnatal.Checked = true;
                      groupBox2.Visible = true;
                      groupLabels.Visible = false;
                      limpiar();
                  }
                  else { MessageBox.Show("ERROR AL GUARDAR","ALERTA"); }

              }
              catch
              {
                  MessageBox.Show("ERROR CONEXIÓN");
              }
          }
       
      }
      
        private void btnSalir_Click(object sender, EventArgs e)
      {
          Close();
      }

        private void btnCancelar_Click(object sender, EventArgs e)
      {
          Close();
      }

        private void btnLimpiar_Click(object sender, EventArgs e)
      {
          limpiar();
      }

      #endregion 
      #region eventoCheckBox
      private void rdoEnlace_CheckedChanged(object sender, EventArgs e)
      {
          lblHora.Visible = false;
          dteHora.Visible = false;
      }

      private void rdoEnfermedad_CheckedChanged(object sender, EventArgs e)
      {
          lblHora.Visible = false;
          dteHora.Visible = false;
      }

      private void rdoRiesgo_CheckedChanged(object sender, EventArgs e)
      {
          lblHora.Visible = false;
          dteHora.Visible =false;
      }

      private void rdoTrayecto_CheckedChanged(object sender, EventArgs e)
      {
          lblHora.Visible = false;
          dteHora.Visible = false;
      }

      private void rdoPrenatal_CheckedChanged(object sender, EventArgs e)
      {
          lblHora.Visible = false;
          dteHora.Visible = false;
      }

      private void rdoPosnatal_CheckedChanged(object sender, EventArgs e)
      {
          lblHora.Visible = false;
          dteHora.Visible = false;
      }
      private void rdoLactancia_CheckedChanged(object sender, EventArgs e)
      {
          lblHora.Visible = true;
          dteHora.Visible = true;
      }
      private void radioButton2_CheckedChanged(object sender, EventArgs e)
      {
          panel4.Visible = false;
      }


      private void radioButton1_CheckedChanged(object sender, EventArgs e)
      {
          panel4.Visible = true;
      }

      private void txtDias_KeyPress(object sender, KeyPressEventArgs e)
      {
          if (Char.IsDigit(e.KeyChar))
          {
              e.Handled = false;
          }
          else if (Char.IsControl(e.KeyChar))
          {
              e.Handled = false;
          }
          else if (Char.IsSeparator(e.KeyChar))
          {
              e.Handled = false;
          }
          else
          {
              e.Handled = true;
          }
      }

      
      private void dteInicio_ValueChanged(object sender, EventArgs e)
      {
        // if(forma1!=2){
          if (dteInicio.Value < DateTime.Today && val == 1)
          {
              dteInicio.Value = DateTime.Today;
              MessageBox.Show("FECHA INCORRECTA", "ALERTA");
          }
       
       //  }
      }

      private void dteFin_ValueChanged(object sender, EventArgs e)
      {

         // if(forma1!=2){
          if ((dteFin.Value < DateTime.Today || dteFin.Value<dteInicio.Value) && val == 1)
          {
              dteFin.Value = DateTime.Today;
              dteInicio.Value = DateTime.Today;
              MessageBox.Show("FECHA INCORRECTA", "ALERTA");
          }
          //}
      }
      #endregion
      #region


        /*   private void dteFin_ValueChanged(object sender, EventArgs e)
        {
            try
            {
                DateTime fechaInicio = new DateTime();
                DateTime fechaFin = new DateTime();
                TimeSpan dias;
                fechaInicio = dteInicio.Value;
                fechaFin = dteFin.Value;

                dias = fechaFin - fechaInicio;
                int diferencia = dias.Days;
                txtDias.Text = diferencia.ToString();
            }
            catch { }
        }
  */
        #endregion



    }
}
